// DeepSeek AI育儿助手

// API配置
const DEEPSEEK_API_KEY = 'sk-72f2b5391cee465088094ea1e463babe';
const API_ENDPOINT = 'https://api.deepseek.com/chat/completions';

// 育儿助手系统提示
const SYSTEM_PROMPT = {
    role: 'system',
    content: '你是一位专业的育儿顾问，专注于回答0-3岁婴幼儿护理、喂养、睡眠和发育相关问题。请用科学、准确、温和的语言回答，确保信息对父母有实际帮助。回答应当包含：1)核心结论 2)简短的理论依据 3)具体可行的建议步骤 4)如有必要，提及注意事项。避免使用专业术语，保持回答通俗易懂。'
};

// 对话历史记录
let conversationHistory = [SYSTEM_PROMPT];

// 将关键函数暴露到全局作用域
window.toggleChat = function() {
    const chatContainer = document.getElementById('chat-container');
    const chatToggleIcon = document.getElementById('chat-toggle-icon');
    const chatInput = document.getElementById('chat-input');
    const sendBtn = document.querySelector('.send-btn');
    
    if (chatContainer && chatToggleIcon) {
        if (chatContainer.style.display === 'none' || chatContainer.style.display === '') {
            // 打开聊天窗口
            chatContainer.style.display = 'flex';
            chatToggleIcon.classList.remove('fa-chevron-up');
            chatToggleIcon.classList.add('fa-chevron-down');
            
            // 启用输入框和发送按钮
            if (chatInput) chatInput.disabled = false;
            if (sendBtn) sendBtn.disabled = false;
            
            // 聚焦输入框
            if (chatInput) setTimeout(() => chatInput.focus(), 300);
        } else {
            // 关闭聊天窗口
            chatContainer.style.display = 'none';
            chatToggleIcon.classList.remove('fa-chevron-down');
            chatToggleIcon.classList.add('fa-chevron-up');
            
            // 禁用输入框和发送按钮
            if (chatInput) chatInput.disabled = true;
            if (sendBtn) sendBtn.disabled = true;
        }
    }
}

// 发送消息
window.sendMessage = async function() {
    console.log('sendMessage function called');
    const chatInput = document.getElementById('chat-input');
    const chatMessages = document.getElementById('chat-messages');
    const sendBtn = document.querySelector('.send-btn');
    
    if (chatInput && chatMessages) {
        const message = chatInput.value.trim();
        if (message) {
            // 添加用户消息到聊天窗口
            const userMessageHtml = `
                <div class="message user-message">
                    <div class="message-content">
                        <p>${escapeHtml(message)}</p>
                    </div>
                </div>
            `;
            chatMessages.insertAdjacentHTML('beforeend', userMessageHtml);
            
            // 清空输入框
            chatInput.value = '';
            
            // 禁用发送按钮防止重复发送
            if (sendBtn) sendBtn.disabled = true;
            
            // 滚动到底部
            scrollToBottom();
            
            // 显示正在输入状态
            showTypingIndicator();
            
            try {
                // 添加用户消息到对话历史
                const userMessage = { role: 'user', content: message };
                conversationHistory.push(userMessage);
                
                // 调用DeepSeek API
                const response = await fetch(API_ENDPOINT, {
                    method: 'POST',
                    headers: {
                        'Content-Type': 'application/json',
                        'Authorization': `Bearer ${DEEPSEEK_API_KEY}`
                    },
                    body: JSON.stringify({
                        model: 'deepseek-chat',
                        messages: conversationHistory,
                        stream: false
                    })
                });
                
                if (!response.ok) {
                    throw new Error(`API调用失败: ${response.status}`);
                }
                
                const data = await response.json();
                
                // 隐藏正在输入状态
                hideTypingIndicator();
                
                if (data.choices && data.choices.length > 0) {
                    console.log('AI response received successfully');
                    const aiResponseText = data.choices[0].message.content;
                    
                    // 添加AI回复到对话历史
                    const aiMessage = { role: 'assistant', content: aiResponseText };
                    conversationHistory.push(aiMessage);
                    
                    // 限制对话历史长度，避免API调用过大
                    if (conversationHistory.length > 10) {
                        // 保留系统提示，删除中间的对话
                        conversationHistory = [SYSTEM_PROMPT, ...conversationHistory.slice(-8)];
                    }
                    
                    // 添加AI回复到聊天窗口
                    const aiMessageHtml = `
                        <div class="message ai-message">
                            <div class="message-content">
                                ${formatAIResponse(aiResponseText)}
                            </div>
                        </div>
                    `;
                    chatMessages.insertAdjacentHTML('beforeend', aiMessageHtml);
                    
                    // 滚动到底部
                    scrollToBottom();
                } else {
                    console.log('No AI response received, using fallback');
                    // 使用fallback回复
                    const fallbackResponse = '感谢您的提问！由于连接原因，我暂时无法获取完整回答。您可以尝试：\n1. 重新发送问题\n2. 检查网络连接\n3. 稍后再试\n\n您的育儿问题很重要，我们会努力为您提供帮助！';
                    
                    const fallbackHtml = `
                        <div class="message ai-message">
                            <div class="message-content">
                                ${formatAIResponse(fallbackResponse)}
                            </div>
                        </div>
                    `;
                    chatMessages.insertAdjacentHTML('beforeend', fallbackHtml);
                    scrollToBottom();
                }
            } catch (error) {
                console.error('DeepSeek API调用错误:', error);
                
                // 隐藏正在输入状态
                hideTypingIndicator();
                
                // 显示错误消息
                const errorMessageHtml = `
                    <div class="message ai-message error-message">
                        <div class="message-content">
                            <p>抱歉，暂时无法连接到服务器。这可能是由于网络问题或服务器暂时不可用。</p>
                            <p>您可以尝试：\n1. 检查您的网络连接\n2. 稍后再试\n3. 刷新页面后重试</p>
                        </div>
                    </div>
                `;
                chatMessages.insertAdjacentHTML('beforeend', errorMessageHtml);
                
                // 滚动到底部
                scrollToBottom();
            } finally {
                // 重新启用发送按钮
                if (sendBtn) sendBtn.disabled = false;
            }
        }
    }
}

// 显示正在输入状态
function showTypingIndicator() {
    const chatMessages = document.getElementById('chat-messages');
    if (chatMessages) {
        const typingHtml = `
            <div class="message ai-message typing-indicator" id="typing-indicator">
                <div class="message-content">
                    <div class="typing">
                        <span></span>
                        <span></span>
                        <span></span>
                    </div>
                </div>
            </div>
        `;
        chatMessages.insertAdjacentHTML('beforeend', typingHtml);
        
        // 添加正在输入的CSS样式
        const style = document.createElement('style');
        style.textContent = `
            .typing {
                display: flex;
                gap: 5px;
            }
            .typing span {
                width: 10px;
                height: 10px;
                background-color: #95a5a6;
                border-radius: 50%;
                animation: typing 1.4s infinite ease-in-out both;
            }
            .typing span:nth-child(1) {
                animation-delay: -0.32s;
            }
            .typing span:nth-child(2) {
                animation-delay: -0.16s;
            }
            @keyframes typing {
                0%, 80%, 100% {
                    transform: scale(0);
                }
                40% {
                    transform: scale(1);
                }
            }
        `;
        document.head.appendChild(style);
        
        scrollToBottom();
    }
}

// 隐藏正在输入状态
function hideTypingIndicator() {
    const typingIndicator = document.getElementById('typing-indicator');
    if (typingIndicator) {
        typingIndicator.remove();
    }
}

// 滚动到聊天窗口底部
function scrollToBottom() {
    const chatMessages = document.getElementById('chat-messages');
    if (chatMessages) {
        chatMessages.scrollTop = chatMessages.scrollHeight;
    }
}

// 转义HTML字符
function escapeHtml(text) {
    const div = document.createElement('div');
    div.textContent = text;
    return div.innerHTML;
}

// 添加聊天消息样式
function addChatStyles() {
    const style = document.createElement('style');
    style.textContent = `
        /* AI回复样式 */
        .ai-response-direct {
            font-size: 14px;
            line-height: 1.6;
            color: #2d3436;
            background-color: #f8f9fa;
            padding: 12px 16px;
            border-radius: 18px 18px 18px 4px;
            max-width: 80%;
            margin: 0 0 15px 0;
        }
        
        /* 错误消息样式 */
        .error-message .message-content {
            background-color: #ffebee;
            border-color: #ffcdd2;
            color: #c62828;
        }
        
        /* 用户消息样式 */
        .user-message .message-content {
            background-color: #4CAF50;
            color: white;
            border-radius: 18px 18px 4px 18px;
            align-self: flex-end;
        }
        
        /* 通用消息容器样式 */
        .message {
            margin-bottom: 12px;
            display: flex;
        }
        
        .message-content {
            padding: 10px 14px;
            border-radius: 18px;
            max-width: 80%;
            word-wrap: break-word;
        }
        
        /* 打字指示器样式 */
        .typing-indicator {
            display: flex;
            align-items: center;
            background-color: #f8f9fa;
            padding: 10px 14px;
            border-radius: 18px 18px 18px 4px;
            max-width: 200px;
            margin-bottom: 15px;
        }
        
        .typing-indicator span {
            width: 8px;
            height: 8px;
            background-color: #95a5a6;
            border-radius: 50%;
            margin: 0 2px;
            animation: typing 1.4s infinite ease-in-out both;
        }
        
        .typing-indicator span:nth-child(1) { animation-delay: -0.32s; }
        .typing-indicator span:nth-child(2) { animation-delay: -0.16s; }
        
        @keyframes typing {
            0%, 80%, 100% { transform: scale(0); }
            40% { transform: scale(1); }
        }
    `;
    document.head.appendChild(style);
}

// 格式化AI回复
function formatAIResponse(text) {
    // 直接返回格式化后的文本回复
    return `<div class="ai-response-direct">${escapeHtml(text)}</div>`;
}

// 绑定输入框回车发送
function setupChatInput() {
    const chatInput = document.getElementById('chat-input');
    const sendBtn = document.querySelector('.send-btn');
    
    if (chatInput) {
        chatInput.addEventListener('keypress', (e) => {
            if (e.key === 'Enter' && !chatInput.disabled) {
                window.sendMessage();
            }
        });
    }
    
    if (sendBtn) {
        sendBtn.addEventListener('click', () => {
            if (!sendBtn.disabled) {
                window.sendMessage();
            }
        });
    }
}

// 初始化聊天机器人
function initChatbot() {
    setupChatInput();
    addChatStyles(); // 添加聊天消息样式
    // 可以在这里添加初始欢迎消息或其他初始化逻辑
}

// 添加聊天窗口样式
function addWindowStyles() {
    const style = document.createElement('style');
    style.textContent = `
        /* 确保聊天窗口在移动设备上显示良好 */
        @media (max-width: 576px) {
            .chat-widget {
                width: 100vw;
                right: 0;
                border-radius: 15px 15px 0 0;
            }
            .chat-container {
                height: 70vh;
            }
        }
    `;
    document.head.appendChild(style);
    
    // 为聊天头部添加点击事件，确保与HTML中的onclick属性配合工作
    const chatHeader = document.querySelector('.chat-header');
    if (chatHeader) {
        // 确保事件正确绑定
        chatHeader.addEventListener('click', window.toggleChat);
    }
}

// 页面加载完成后初始化聊天机器人
document.addEventListener('DOMContentLoaded', function() {
    // 确保DOM完全加载后再初始化
    setTimeout(() => {
        initChatbot();
        addWindowStyles();
    }, 100);
});